/*
 * IModuleService.java
 *
 * Copyright 2012 the original author or authors(ninglong).
 *
 * Licensed under the org.geek.module.service, Version 1.0 (the "License");
 *
 */
package org.geek.app.module.service;

import java.util.List;

import org.geek.core.bean.ExtTree;
import org.geek.core.mybatis.domain.Criteria;
import org.geek.core.mybatis.domain.Module;

/**
 * <p></p>
 * @author ninglong bhd2973@qq.com
 * @version V1.0
 */
public interface IModuleService {
	
	/**
	 * @return 将模块集合转换成可组成tree的对象menu
	 */
	List<ExtTree> getModules2Tree();
	
	/**
	 * @param criteria 查询条件
	 * @return  根据条件得到模块数量
	 */
	int countModuleByCriteria(Criteria criteria);
	
	/**
	 * @param criteria 查询条件
	 * @return 根据条件得到模块
	 */
	List<Module> getModuleByCriteria(Criteria criteria);
	
	/**
	 * @param module 需要保存的模块
	 * @return
	 */
	int modModule(Module module);
	
	/**
	 * @param module 需要保存的模块
	 * @return
	 */
	int addModule(Module module);
	
	/**
	 * @param ModuleId 需要删除的功能模块Id
	 * @return
	 */
	int delModuleByModuleId(int moduleId);
	
	/**
	 * 得到菜单
	 * @param userId
	 * @return
	 */
	List<ExtTree> getModuleByAuth(int userId);
}
